/**
 * 
 */
package com.maohi.software.tupuna.interfaces;

import com.maohi.software.arii.mvc.UI;
import com.maohi.software.arii.mvc.listeners.UIListener;
import com.maohi.software.tupuna.Page;
import com.maohi.software.tupuna.constants.UIContext;
import com.maohi.software.tupuna.constants.UITypeEvent;
import com.maohi.software.tupuna.jaxb2.Bundles;

/**
 * @author heifara
 * 
 */
public interface TupunaUI extends UI<TupunaController> {

	/**
	 * @see UITypeEvent
	 * @see UIContext
	 */
	@Override
	public void addUIListener(UIListener aListener);

	/**
	 * Return the appropriate implementation of {@link Page}
	 * 
	 * @return the new page
	 */
	public Page newPage();

	/**
	 * Open the {@link Bundles}
	 * 
	 * @param aBundleId
	 */
	void openBundle(String aBundleId);

	/**
	 * Return the {@link Page} matching aTitle
	 * 
	 * @param aTitle
	 *            the title
	 * @return
	 */
	public Page getPage(String aTitle);

}
